Spi keyboard module for a parking meter and a parking meter having an spi keyboard module

ABSTRACT

A serial peripheral interface (SPI) keyboard module for a parking meter comprises a plurality of key switches and at least one controller configured to detect a key press, determine a predetermined indicator associated with the pressed key and transmit the indicator to a keyboard interface of the parking meter. The SPI keyboard module provides a low power keyboard module that can be easily adapted to provide different keyboards or layouts without requiring significant changes to the parking meter electronics.

TECHNICAL FIELD

The current disclosure relates to parking meters and in particular to parking meters incorporating keyboards.

BACKGROUND

Parking meters can be classified as either a multi-space meter or a single space meter. Multi-space meters are generally larger and are used to manage payment for park time at a large group of parking spaces such as a parking lot or street block. Multi space meters tend to have sufficient space to include larger cash vaults, large batteries as well as large solar panels. Alternatively, Multi-space meters may be connected to an electrical grid. Single space meters are generally smaller meters, typically found at on street parking spots. Single space parking meters tend to be significantly smaller than multi space meters and as such may have limited space for cash vaults, batteries and solar panels. Although referred to as single space meters, they are capable of monitoring additional parking spaces. For example, it is common to provide a single space parking meter to monitor two parking spaces.

Alphanumeric keypads have been provided in multi space parking meters. However due at least in part to space restrictions they have not been used in single space parking meters.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects and advantages of the present disclosure will become better understood with regard to the following description and accompanying drawings in which:

FIG. 1 depicts a single space parking meter incorporating an SPI keyboard module;

FIG. 2A depicts parking meter components and an alphanumeric SPI keyboard module;

FIG. 2B depicts parking meter components and a 6-key SPI keyboard module;

FIG. 3A depicts a single space parking similar to that of FIG. 1 but incorporating the SPI keyboard module of FIG. 2B;

FIG. 3B depicts a single space parking similar to that of FIG. 3B but incorporating a different SPI keyboard module;

FIG. 4 depicts parking meter components of a parking meter incorporating an SPI keyboard module;

FIG. 5 depicts parking meter components of a further parking meter incorporating a low power SPI keyboard module;

FIG. 6 depicts a method of detecting a key press;

FIG. 7 depicts a further method of detecting a key press;

FIG. 8 depicts processing of a key press;

FIG. 9 depicts a process of configuring a parking meter;

FIG. 10 depicts parking meter components of a parking meter incorporating multiple SPI keyboard modules; and

FIG. 11 depicts an SPI touch screen module; and

FIG. 12 depicts parking meter components of a further parking meter incorporating the SPI touch screen module of FIG. 11.

DETAILED DESCRIPTION

In accordance with the present disclosure there is provided a parking meter comprising: at least one parking meter controller executing instructions to configure the parking meter to provide: operating functionality; and a keyboard interface comprising a serial peripheral interface (SPI) bus interface; and an SPI keyboard module connected to the at least one parking meter controller by an SPI bus, the SPI keyboard module comprising: a plurality of key switches; and at least one keyboard controller configured to: detect pressing of a key switch of the plurality of key switches; determine a predetermined indicator associated with the detected key switch that was pressed; and transmit over the SPI bus the predetermined indicator associated with the pressed key to the keyboard interface of the at least one parking meter controller.

In a further embodiment of the parking meter, the keyboard interface receives the predetermined indicator transmitted by the SPI keyboard module and maps the received predetermined indicator to a particular key.

In a further embodiment of the parking meter, keyboard interface uses a keyboard mapping associated with the SPI keyboard module for mapping the received predetermined indicator to a particular key.

In a further embodiment of the parking meter, the keyboard interface determines a keyboard identifier of the SPI keyboard module and selects the keyboard mapping based on the keyboard identifier.

In a further embodiment of the parking meter, the keyboard mapping is associated with the keyboard identifier.

In a further embodiment of the parking meter, the keyboard mapping is associated with a keyboard type and the keyboard interface determines the keyboard type using the received keyboard identifier.

In a further embodiment of the parking meter, the keyboard type is communicated to the operating functionality and the operating functionality enables or disables one or more features of the parking meter based on the keyboard type.

In a further embodiment of the parking meter, the keyboard identifier is communicated to the operating functionality and the operating functionality enables or disables one or more features of the parking meter based on the keyboard identifier.

In a further embodiment of the parking meter, the keyboard interface determines the keyboard identifier when the SPI keyboard module is first connected to the at least one parking meter controller by the SPI bus.

In a further embodiment of the parking meter, the keyboard interface queries the SPI keyboard module to provide the keyboard identifier.

In a further embodiment of the parking meter, the SPI bus comprises: a chip select (CS) signal line associated with the SPI keyboard module for carrying a chip select signal indicative of when the keyboard module can transmit to the at least one keyboard controller; a serial clock (SCLK) signal line for carrying a clock signal for controlling signal timing; a master in slave out (MISO) signal line for carrying serially transmitted data from the SPI keyboard module to the at least one parking meter controller; and a master-out-slave-in (MOSI) signal line for carrying serially transmitted data from the at least one parking meter controller to the SPI keyboard module.

In a further embodiment of the parking meter, the keyboard controller is configured to: monitor the CS signal line in a transmission mode when data is to be transmitted to the at least one parking meter controllers.

In a further embodiment, the parking meter further comprises an attention (ATTN) signal line connecting the SPI keyboard module to the at least one parking meter controller, and wherein the keyboard controller is configured to: switch from a sleep mode to the transmission mode when a key press is detected; and raise a signal on the ATTN signal line providing an indication to the at least one parking meter controller that there is data to transmit.

In a further embodiment of the parking meter, the keyboard controller is further configured to: switch from the transmission mode to the sleep mode when there is no more data to transmit to the at least one parking meter controller.

In a further embodiment of the parking meter, the keyboard controller detects pressing of the key switch by: detecting a trigger indicative of pressing of the key switch; and scanning the plurality of key switches to determine which key switch was pressed.

In a further embodiment of the parking meter, the keyboard interface transmits a keyboard command comprising a command identifier to the SPI keyboard module over the SPI bus, and wherein the keyboard controller of the SPI keyboard module receives and processes the keyboard command.

In a further embodiment of the parking meter, the keyboard command comprises one or more of: a mode command changing an operating mode of the SPI keyboard module; a configuration command setting a configuration parameter value of the SPI keyboard module; a query command querying configuration parameter values of the SPI keyboard module; and an action command causing the SPI keyboard module to perform an action.

In a further embodiment of the parking meter, the SPI keyboard module further comprises a feedback device capable of providing feedback of key presses.

In a further embodiment of the parking meter, the feedback device comprises a piezoelectric buzzer capable of providing auditory feedback.

In a further embodiment of the parking meter, the SPI keyboard module further comprises a light emitting diode (LED) device for lighting at least a portion of the plurality of key switches.

In a further embodiment of the parking meter, the plurality of key switches comprise at least 4 key switches.

In a further embodiment of the parking meter, the plurality of key switches comprise key switches for: a left key; a plus key; a minus key; an OK key; a cancel key; and a right key.

In a further embodiment of the parking meter, the plurality of key switches provide key switches for alphanumeric keys.

In a further embodiment of the parking meter, the parking meter is a single space parking meter.

In a further embodiment of the parking meter, the parking meter is a multi-space parking meter.

In a further embodiment, the parking meter further comprises a second SPI keyboard module connected to the at least one parking meter by the SPI bus.

In accordance with the present disclosure there is further provided an SPI keyboard module for connection to a parking meter controller in a parking meter by an SPI bus, the SPI keyboard module comprising: a plurality of key switches; and at least one keyboard controller configured to: detect pressing of a key switch of the plurality of key switches; determine a predetermined indicator associated with the detected key switch that was pressed; and transmit over the SPI bus the predetermined indicator associated with the pressed key to the keyboard interface of the parking meter controller.

In a further embodiment of the SPI keyboard module, the SPI bus comprises: a chip select (CS) signal line associated with the SPI keyboard module for carrying an chip select signal indicative of when the keyboard module can transmit to the keyboard controller; a serial clock (SCLK) signal line for carrying a clock signal for controlling signal timing; a master in slave out (MISO) signal line for carrying serially transmitted data from the SPI keyboard module to the parking meter controller; and a master-out-slave-in (MOSI) signal line for carrying serially transmitted data from the parking meter controller to the SPI keyboard module.

In a further embodiment of the SPI keyboard module, the keyboard controller is configured to: monitor the CS signal line in a transmission mode when data is to be transmitted to the parking meter controllers.

In a further embodiment, the SPI keyboard further comprises a connector to an attention (ATTN) signal line for connecting the SPI keyboard module to the at least one parking meter controller, and wherein the keyboard controller is configured to: switch from a sleep mode to the transmission mode when a key press is detected; and raise a signal on the ATTN signal line through the connector providing an indication to the at least one parking meter controller that there is data to transmit.

In a further embodiment of the SPI keyboard module, the keyboard controller is further configured to: switch from the transmission mode to the sleep mode when there is no more data to transmit to the at least one parking meter controller.

In a further embodiment of the SPI keyboard module, the keyboard controller detects pressing of the key switch by: detecting a trigger indicative of pressing of the key switch; and scanning the plurality of key switches to determine which key switch was pressed.

In a further embodiment of the SPI keyboard module, the keyboard controller is configured to receive and process a keyboard command comprising a command identifier over the SPI bus.

In a further embodiment of the SPI keyboard module, the keyboard command comprises one or more of: a mode command changing an operating mode of the SPI keyboard module; a configuration command setting a configuration parameter value of the SPI keyboard module; a query command querying configuration parameter values of the SPI keyboard module; and an action command causing the SPI keyboard module to perform an action.

In a further embodiment, the SPI keyboard further comprises a feedback device capable of providing feedback of key presses.

In a further embodiment of the SPI keyboard module, the feedback device comprises a piezoelectric buzzer capable of providing auditory feedback.

In a further embodiment of the SPI keyboard module, the SPI keyboard module further comprises an LED device for lighting at least a portion of the plurality of key switches.

In a further embodiment of the SPI keyboard module, the plurality of key switches comprise at least 4 key switches.

In a further embodiment of the SPI keyboard module, the plurality of key switches comprise key switches for: a left key; a plus key; a minus key; an OK key; a cancel key; and a right key.

In a further embodiment of the SPI keyboard module, the plurality of key switches provide key switches for alphanumeric keys.

In accordance with the present disclosure there is further provided an SPI touch screen module for connection to a parking meter controller in a parking meter by an SPI bus, the SPI touch screen module comprising: a touch screen display; a touch sensor overlaid on the touch screen; a display controller configured to: receive display information from the parking meter controller; and display at least one virtual key on the touch screen display according to the received display information; and at least one keyboard controller configured to: detect a touch at a location on the touch sensor; and transmit over the SPI bus an indication of the location on the touch sensor of the detected touch to the keyboard interface of the parking meter controller.

Single space parking meters and multi space parking meters can be used by different companies, cities, governments, etc., referred to as operators for brevity, for monitoring parking spaces. Different operators may have different requirements for their parking meters and as such parking meter designs are often modified to suit the different needs of the different operators. A parking meter keyboard module is described further below that provides flexibility in using different keyboard layouts. Different keyboard modules can be used without requiring significant changes to the underlying parking meter control. The keyboard modules also can provide low power consumption making them well suited for use in single space parking meters.

FIG. 1 depicts a single space parking meter incorporating an SPI keyboard module. The parking meter 100 has an upper portion 102 that is secured to a lower portion 104. The upper portion houses the main components of the parking meter 100. While the particular components may vary from meter to meter they may include a payment means such as a card reader 106 for reading payment cards as well as a coin slot 108 for accepting coins. The parking meter includes a display 110 for displaying information such as instructions, parking time purchased, time remaining etc. A solar panel 112 may be positioned on the parking meter 100 and may provide power to the parking meter to charge a battery in order to extend an operating life of the parking meter. In addition to the payment means, display and solar panel, the parking meter includes a keyboard 114. As depicted in FIG. 1, the keyboard 114 may be an alphanumeric keyboard including all of the letters ‘A’ to ‘Z’, the number 0 to 9 as well as additional keys such as a plus key, a minus key, an ‘OK’ key, a cancel key and a language key. As described in further detail below, the keyboard 114 is provided by a serial peripheral interface (SPI) keyboard module. The SPI keyboard module allows different keyboard layouts to be used without requiring further changes to the parking meter components. An SPI keyboard interface provided by, for example, the main parking meter controller is able to communicate with different SPI keyboard modules regardless of the keyboard layouts, and determine keys that have been pressed. In addition to providing easy flexibility for using different keyboard layouts, the SPI keyboard module can provide low power consumption, making it well suited for use in single space parking meters that may have limited space for batteries.

The keyboard 114 allows a user to input various information into the parking meter 100. For example, the keyboard 114 may be used to provide pay-by-space functionality or pay-by-plate functionality, both of which are common to multi-space meters. Pay-by-space functionality allows a user to pay for a particular parking spot that is associated with an identifying number by entering the number into the parking meter and purchasing the desired amount of time. Pay-by-plate functionality allows a user to purchase parking time that is associated with a license plate or vehicle identification number (VIN) by entering the license plate or last few digits of the VIN into the parking meter and purchasing the desired amount of parking time. Additional functionality may be provided that makes use of the keyboard 114. For example, a user could enter a telephone number in order to receive notifications of expiry of the purchased parking time or an e-mail address to receive a payment receipt.

The upper portion of the parking meter 102 is secured to the lower portion 104. The lower portion comprises a vault 116 for coins inserted into the coin slot 108. The vault 116 may have a vault door 118 for removal of the collected coins. The vault 116 can be secured to a post 120 or other structure that secures the parking meter 100 in a desired location.

FIG. 2A depicts parking meter components and an alphanumeric SPI keyboard module. The parking meter 200 a comprises main parking meter components 202, an SPI keyboard module 204 a connected to the parking meter components by an SPI bus 206. The main parking meter components include at least one processor or controller, depicted as CPU 208, that executes instructions stored in memory 210. The parking meter components may further include a physical connection 212 to the SPI bus. When the instructions stored in the memory 210 are executed, they configure the parking meter components 202 order to provide various functionality 214 to the parking meter. The functionality 214 includes operating functionality 216, which broadly provides the parking meter functions, for example the timing functionality, purchasing functionality, communication functionality, etc. It will be appreciated that the operating functionality may include a wide variety of different functionality which is not described in detail. Regardless of the particular operating functionality, it is necessary to provide user input to the operating functionality, for example in order to allow a user to specify a desired amount of time to purchase. The user input may include further input for example to control, review, or set operating parameters of the parking meter.

The functionality 114 further includes SPI keyboard interface functionality 218 that communicates with the SPI keyboard module 204 a over the SPI bus 206. The SPI keyboard interface functionality 218 receives an indicator of a particular key that was pressed and maps the indicator to a key which is communicated to the operating functionality 216. For example, the SPI keyboard interface functionality 218 may receive an indicator of ‘15’ over the SPI bus 206 indicating that key number 15 was pressed. The SPI keyboard interface functionality 218 maps the received indicator to a key of the keyboard, for example ‘15’ may be mapped to a key ‘e’. The particular mapping used by the SPI keyboard interface 218 for mapping an indicator to a key may change depending upon the keyboard used.

FIG. 2B depicts parking meter components and a 6-key SPI keyboard module. The parking meter 200 b is substantially the same as parking meter 200 a except that a different SPI keyboard module 204 b is connected to the SPI bus 206. The SPI keyboard module 204 b layout is significantly different from that of the alphanumeric SPI keyboard module 204 a and comprises 6 keys. Although the SPI keyboard module 204 b has a significantly different layout from that depicted in FIG. 2A, the parking meter components 202 and in particular the operating functionality 216 and the SPI keyboard interface functionality 218 remains the same as described above for parking meter 200 a. In order to operate correctly with the different keyboard layout depicted in FIG. 2B, the mapping used by the SPI keyboard interface 218 to map a received indicator to a key is selected for the particular keyboard. The mapping may be loaded into the SPI keyboard interface functionality during a manufacturing stage, an assembly stage, a setup or configuration stage or during an in-use stage while the parking meter is installed in the field. The mapping may be loaded manually at the meter by a technician, or the mapping may be loaded automatically based on the particular SPI keyboard module connected to the parking meter components. Additionally or alternatively, the meter may have the ability to establish a communication channel with a remote management server or a mobile data source to automatically request and download the correct mapping data corresponding to the connected SPI keypad from that remote management server or mobile data source. The SPI keyboard interface functionality 218 allows different keyboard layouts to be used with minimal changes, if any, to the operating functionality, as well as minimizing manual intervention at the meter by a technician.

FIG. 3A depicts a single space parking similar to that of FIG. 1 but incorporating the SPI keyboard module of FIG. 2B. The parking meter 300 a is substantially the same as parking meter 100 described above. However, rather than having an alphanumeric keyboard, the parking meter 300 a comprises a limited 6-key keyboard. The different keyboard layout can be used without having to reconfigure the operating functionality, which allows a common parking meter component configuration to be used across multiple different parking meter implementations. The use of common parking meter component configuration, including the operating functionality and SPI keyboard interface functionality can simplify maintenance, development and support since many fewer versions of the operating functionality need to be provided. The operating functionality may be designed to support a wide range of keyboard layouts so that switching keyboard layouts does not require any significant changes.

In addition to providing flexibility for making large changes to parking meter layouts, such as using an alphanumeric keyboard as depicted in FIG. 1 versus the 6-key iconic keyboard of FIG. 3A, the SPI keyboard interface 218 also provides flexibility for making smaller changes to the keyboard layout, such as switching the particular key locations.

FIG. 3B depicts a single space parking similar to that of FIG. 3A but incorporating a different SPI keyboard module. The parking meter 300 b is substantially similar to the parking meter 300 a, however the SPI keyboard module 300 b has a slightly different key layout, with the locations of the ‘plus’ key and the ‘minus’ key switched. The different keyboard layout of the SPI keyboard 300 b only requires a different key mapping be used by the SPI keyboard interface. If the SPI keyboard module identifies to the meter specific data that identifies a particular layout, the meter can dynamically adjust its behavior to a given keypress to correspond to the specific layout.

FIG. 4 depicts parking meter components of a parking meter incorporating an SPI keyboard module. The parking meter components 400 comprise at least one parking meter controller 402 that is connected to at least one SPI keyboard module 404 by an SPI bus 406. The at least one parking meter controller may implement various functionality through a combination of hardware, firmware and software. The functionality includes parking meter operating functionality 408 as well as SPI keyboard interface functionality 410.

The SPI keyboard module 404 comprises a plurality of key switches 412 a, 412 b, 412 n (referred to collectively as key switches 412). The key switches may be for example piezoelectric switches. Each of the key switches 412 a are connected to a keyboard controller 414 that determines which of the key switches were pressed and communicates the pressed key switch to the SPI keyboard interface functionality 410 over the SPI bus 406. The keyboard controller 414 may be provided by for example a microcontroller configured by firmware and/or software. The keyboard controller monitors the key switches 412 to detect when a key switch is pressed. For example, when a key switch is pressed, it may cause a detectable voltage change at the keyboard controller, and so by monitoring for the voltage change, it is possible to detect when a key switch is pressed. When a key press is detected, the keyboard controller 414 determines a predetermined indicator associated with the pressed key switch to the SPI keyboard interface functionality 410 over the SPI bus. The predetermined indicator may be, for example a number of the key switch. For example key switch 412 a may be assigned the number ‘1’, key switch 412 b may be assigned the number ‘2’ etc. The keyboard controller communicates the indicator to the SPI keyboard interface functionality 410 which receives the indicator and maps the predetermined indicator to a pressed key. For example the indicator ‘1’ may be mapped to a letter ‘A’ key. Once the pressed key is determined it can be provided to the parking meter operating functionality 408, which can take appropriate action.

The predetermined association between key switches and the indicator does not need may be any particular association and may change, either for different SPI keyboard modules or for the same SPI keyboard module over time. However the predetermined association between the key switches and indicators should be determined prior to the keys being pressed in use in order to be able to correctly map between the indicator and the key associated with the key switch by the SPI keyboard interface.

The SPI bus 406 connecting the at least one parking meter controller 402 also known as the MASTER device to the SPI keyboard module 404 also known as the SLAVE device comprises 4 signal lines including a master driven chip select (CS) signal line, a master driven serial clock signal line (SCLK), a slave driven master in slave out (MISO) signal and a master driven master-out-slave-in (MOSI) signal line. The chip select (CS) signal line is for carrying a chip select signal generated by the SPI keyboard interface which acts as the master of the SPI bus. The CS signal is indicative of when the keyboard module can transmit data to the keyboard controller or more particularly the SPI keyboard interface functionality provided by the keyboard controller. If no other devices use the SPI bus 406, the CS signal line could be omitted. The slave clock (SCLK) signal line for carrying a clock signal for controlling signal timing. The slave clock is generated by the master and provides the timing for clocking in/out the serial data. The master in slave out (MISO) signal line is for carrying serially transmitted data, such as the indicator of the pressed key switch, from the SPI keyboard module to the parking meter controller. The master-out-slave-in (MOSI) signal line is for carrying serially transmitted data from the parking meter controller to the SPI keyboard module. This data may include commands such as commands for setting operating characteristics of the SPI keyboard module 404. The commands may be provided to the SPI keyboard interface 410 by the parking meter operating functionality 408 as depicted by keyboard commands 418. Additionally, or alternatively, the commands may be generated by the SPI keyboard interface functionality 410.

While the parking meter components depicted in FIG. 4 may provide the flexibility of using different SPI keyboard modules with little modifications, if any, required to the operating functionality of the parking meter controller, it requires the SPI keyboard module to constantly monitor the CS signal line to determine when it is able to transmit data, such as what key is or was pressed. This constant monitoring of the CS signal line may unnecessarily consume power. As described further below, a lower power SPI keyboard module may be provided that does not require the parking meter controller to poll the SPI keyboard module to determine if a key is pressed.

FIG. 5 depicts parking meter components of a further parking meter incorporating a low power SPI keyboard module. The parking meter components 500 comprise at least one parking meter controller 502 and an SPI keyboard module 504. The SPI keyboard module 504 is connected to the at least one parking meter controller 502 by an SPI bus, comprising a CS signal line, SCLK signal line, MOSI signal line, and MISO signal line, which have the same functionality of the corresponding signal lines of the SPI bus 406 described above. The SPI keyboard module 504 has an additional signal line, ‘ATTN, 508 an acronym for “attention’ that can signal to the at least one parking meter controller that a key was pressed. The SPI keyboard module is also depicted as being connected to the at least one parking meter controller by a Reset signal line 510 that can cause the SPI keyboard module to reset to an initial or defined state.

The at least one parking meter controllers are configured, for example by hardware, firmware and software, to provide operating functionality 512 and SPI keyboard interface functionality 514. The SPI keyboard interface functionality 514 may comprise an SPI bus interface that generates the appropriate signals to be transmitted over the SPI bus 506 as well as monitoring the ATTN signal line 508 the SPI bus 506. The SPI bus may further process received data to determine a key that was pressed and communicate the pressed key to the operating functionality 512 for further processing.

The SPI keyboard module includes a power connection Vcc 518 and Gnd 520 which may be provided by the battery (not shown) or power circuitry of the parking meter. Vcc 518 and Gnd 520 may be supplied to the microcontroller or other circuitry that implements the keyboard controller. The SPI keyboard module 504 comprises a plurality of key switches 522 a, 522 b, 522 c, 522 d, 522 e, 522 b (referred to collectively as key switches 522). Six (6) key switches are depicted in FIG. 5, however fewer or more key switches can be provided. Vcc 518 is depicted as being connected to each of the key switches 522 for illustrative purposes to highlight the signal provided to the keyboard controller 524 when a key switch is pressed, or closed. The connection depicted in FIG. 5 is intended to be illustrative and different arrangements for providing a detectable voltage, or current, change to the keyboard controller when a key switch is pressed are possible. As depicted in FIG. 5 each key switch is associated with a key. Key switch 522 a is associated with the ‘Left’ key, key switch 522 b is associated with the ‘Plus’ key, key switch 522 c is associated with the ‘Minus’ key, key switch 522 d is associated with the ‘OK’ key, key switch 522 e is associated with the ‘Cancel’ key, and key switch 522 f is associated with the ‘Right’ key. The visual association between a key switch and the key is generally made by printing a representation of the key on the key switch, however at the SPI keyboard controller each key may be assigned a numeric data value, and that numeric data value is then passed through the SPI interface to the parking meter controller where the association of the numeric data value is mapped to the keypad function matching the visual association. Alternatively the SPI keyboard controller may assign an ASCII data value associated with the actual character that the key represents.

The keyboard controller 524 may comprise a keypad sensor 526 that detects when a key switch was pressed and communicates which key switch was pressed to control functionality 528 of the keyboard controller 524. The keypad sensor 526 can provide a predetermined indicator associated with the key switches 522 to the control functionality 528. The control functionality 528 can then transmit the indicator to the SPI keyboard interface 514 over the SPI bus 506. SPI bus interface functionality 530 may provide the SPI bus functionality for transmitting over the SPI bus, such as monitoring the CS signal line and then clocking the data to be transmitted out over the MISO signal line and clocking data in over the MOSI signal line according to the SCLK line timing signal. In order to avoid constantly asserting the CS signal line to poll the SPI keyboard module to determine if a key has been pressed, which may unnecessarily consume power, the parking meter controller, or the SPI keyboard interface functionality 514 of the parking meter controller, can operate in a sleep mode when no data is ready to be transmitted by the SPI keyboard module. When a key has been pressed the SPI keyboard module 504 can wake the parking meter controller 502, or the SPI keyboard interface 514 of the parking meter controller using the ATTN line 508.

In order to transmit the indicator of the key switch that was pressed to the SPI keyboard interface, the control functionality asserts the ATTN line, by pulling the line from a normal high voltage level to a low level. Asserting the signal on the ATTN line indicates to the SPI keyboard interface that the SPI keyboard module is waiting to transmit data. When the control functionality 528 of the SPI keyboard module asserts the ATTN line 508, it causes the SPI bus interface 516 to wake up from the low power sleep mode and assert the CS signal line as well as drive the SCLK signal line in order to clock data in from the SPI keyboard module, as well as clock data out to the SPI keyboard module if there is any to transmit. Once the SPI keyboard module asserts the ATTN line 508, it may enter a transmission mode and waits for the appropriate CS signal line to be asserted and then clocks data of the pressed key out to the SPI bus interface 516 and clocks any data in from the SPI bus interface 516.

The SPI keyboard interface functionality 514 of the parking meter controller 502, or more particularly the SPI bus interface functionality 516 generates the timing clock signal on the SCLK signal line, which will cause the SPI bus interface 530 of the SPI keyboard module 504 to clock out the indicator of the key switch that was pressed. The SPI bus interface 516 of the SPI keyboard interface functionality 514 clocks in the transmitted data, and also clocks out any data to be transmitted to the SPI keyboard module 504. Although described as entering the transmission mode only when data is ready to be transmitted, the keyboard controller may periodically raise the signal on the ATTN line in order to provide a heartbeat signal to the parking meter controller indicating that the SPI keyboard module 504 is functioning properly. When the ATTN line is asserted, the SPI keyboard interface 514 of the parking meter controller 502 may transmit any data or commands to the SPI keyboard module.

When the keyboard interface functionality 514 receives the predetermined indicator of the key switch that was pressed, the keyboard interface functionality 514 maps the indicator to the key associated with the key switch. The mapping may use a key map 532 that provides a mapping between predetermined indicators, which are associated with key switches, and keys, which are also associated with the key switches. For example, the keypad sensor may associate predetermined indicators with key switches as set forth in Table 1.

TABLE 1 association between key switches and predetermined indicators Key switch Predetermined indicator 522a 1 522b 2 522c 3 522d 4 522e 5 522f 6

The particular predetermined indicator associated with each key switch is not particularly important, for example key switch 522 a could be associated with a predetermined indicator of ‘1’ or ‘55’ without changing the operation of the SPI keyboard module. Although the predetermined indicator associated with each key switch may change, in order for the SPI keyboard interface to properly map the indicator to the corresponding key, the association between the key switches and indicators should correspond with the mapping used by the keyboard interface functionality 514. The key map 532 used by the keyboard interface functionality 514 for mapping the key switches 522 to the corresponding keys depicted in FIG. 5 are set forth in Table 2.

TABLE 2 association between key switches and predetermined indicators Predetermined indicator Key 1 Left 2 Plus 3 Minus 4 OK 5 Cancel 6 Right

Once the received indicator is mapped to the corresponding key, the keyboard interface functionality 514 can communicate the key to the operating functionality of the parking meter controller 512.

As described above, the predetermined indicators associated with a key switches need to correspond to the key map used for the particular SPI keyboard module 504. The key map 532 can be manually changed if the SPI keyboard module is changed. However, greater flexibility is possible by associating the key map with a keyboard ID. The SPI keyboard module 504 may have a keyboard ID 534 which can be communicated to the keyboard interface functionality 514 over the SPI bus 506. The keyboard interface functionality can use the keyboard ID to load or request from the remote system the appropriate key map for subsequent use. Although the keyboard ID is described and depicted as being associated with the keyboard map, the keyboard ID may be associated with a keyboard type which in turn is associated with the keyboard map.

The SPI keyboard module 504 may have additional components such as a feedback device, which is depicted as a piezoelectric buzzer 536. The control functionality 528 may cause the buzzer 536 to beep, not beep or set the duration of the beep when keys are pressed. Additionally or alternatively, the keys may be illuminated, for example by an LED 538. While a single LED 538 is depicted in FIG. 5, one or more LEDs may be used to provide illumination of the keys. The LED(s) may be used to illuminate the keys from behind or underneath the keys, providing a backlighting of the individual keys. Additionally or alternatively the LED(s) may be located about a perimeter of an area of the keys to illuminate the faces of the keys and surrounding area. The LED(s) may be provided with lenses, diffusers and/or light pipes in order to provide the desired illumination. The control functionality 528 can control when the LED is on as well as its power level. The SPI keyboard module 504 may have additional components or functionality not depicted. For example, in order to provide a full alphanumeric keypad in a small form factor, the key sizes and spacings between them may be small, which for piezoelectric key switches, may cause cross-talk signal between adjacent key switches, causing it to potentially appear as if key switches were pressed that in fact were not pressed. In order to eliminate such fake presses, the SPI keyboard module may include filtering functionality to filter out the fake presses.

The keyboard interface functionality may receive keyboard commands from the operating functionality, or may generate keyboard commands itself. The keyboard commands are transmitted to the SPI keyboard module 504 over the SPI interface 506 and allow the operation of the SPI keyboard module 504 to be controlled. The commands may include mode commands that change an operating mode of the SPI keyboard module. For example, a mode command may cause the keyboard controller to switch to an off or low power mode in which the keyboard controller does not monitor for key presses, which may be useful during times when parking is free, as well as return to an on or normal mode in which key presses are monitored. The commands may further include configuration commands that can change operating characteristics of the SPI keyboard module. For example, these may include, providing new firmware or software, changing the predetermined indicators associated with key switches, setting or changing the keyboard ID 534, changing feedback characteristics such as how long a key press beep is, and changing how long the LED(s) light stays on and its power level. The commands may include query commands which allow the keyboard interface of the parking meter controller to query the SPI keyboard module to provide requested parameters, such as the keyboard ID or other parameters. The commands may further comprise action commands which cause the SPI keyboard module to perform an action, such as turning on or flashing the LED(s) light or beeping the buzzer.

The above has described the use of an SPI bus to communicate between the at least one parking meter controller 502 and the SPI keyboard module 504. The particular communication protocol definition used to communicate over the SPI bus may vary as long as the SPI keyboard interface functionality 514 and the SPI keyboard module 504 implement compatible protocol definitions. The communication protocol definition may specify details such as signal voltages representing highs and lows, clock phase and clock edges for data capture/reading, minimum and/or maximum timing values such as a maximum clock frequency for transmitting the serial data, a word length and encoding used for transmitting data as well as other communication details.

FIG. 6 depicts a method of detecting a key press. As described above, key switches may cause a voltage, or current, change at the keyboard controller 524. The keyboard controller 524 may continuously scan or monitor the key switches or other related criteria in order to detect a key press. The keyboard controller circuits may scan or monitor the keys at a constant frequency or at a level that is high enough to detect each of a plurality of key presses. However, while such a scanning frequency or monitoring level may be desirable to detect and distinguish between subsequent key presses which may occur relative soon after each other, it may be unnecessarily high to detect an initial key press. The method 600 uses variable frequency scanning or a low power level monitoring circuit to provide a low power scanning to detect an initial key press followed by a higher power scanning which scans for key presses at a higher frequency. The method 600 begins while operating in a lower power monitoring or scanning mode 602 in which the key switches are scanned or monitored at a first frequency or power level that is high enough and fast enough to detect an initial key press, but does not consume excessive power. The method determines if a key press was detected (604) and if no key press was detected (No at 604), the method waits for a period of time determined by the first scanning frequency or the low power monitoring circuit of the low power scanning mode (602) before scanning the key switches again (602) and determining if a key press was detected. If a key press was detected (Yes at 604), the method processes the key press (606) at a high power scanning mode (608) to detect subsequent key press. In the high power scanning mode, the key switches are scanned at a second scanning frequency that is higher than the first scanning frequency or low power monitoring method. As in the low power scanning mode, the high power scanning mode determines if a key press was detected (610), and if a key press was detected (Yes at 610) the key press is processed (612). The key processing is the same for both the low power and high power scanning modes. Once the key press is processed the high power scanning of the key switches continues (608). If no key press was detected (No at 610), it is determined if the high power scanning should end (614). High power scanning should end if no key presses have been detected for a threshold period of time. If the high power scanning should continue (No at 610), the key switches continue to be scanned at the second frequency of the high power scanning (608). If the high power scanning should end (Yes at 610), the scanning switches back to the lower power scanning (602).

The method 600 described with reference to FIG. 6 attempts to reduce power consumption by using a low power scanning mode to detect an initial key press and then switch to a high power scanning mode. Other techniques for reducing power consumption may be provided.

FIG. 7 depicts a further method of detecting a key press. The method 700 includes a low power detection 702 that tries to detect the occurrence of a particular trigger. If no trigger is detected (No at 704), the low power detection continues. If however, a trigger was detected (Yes at 704) high power key processing is performed to determine what key was pressed and process the key process accordingly. It is may be determined whether to continue with the high power key processing (No at 708) or to return to the low power detection (Yes at 708).

In contrast to method 600 which uses a low power scan mode to detect a key press and then switch to a high power scanning mode to detect subsequent key presses, the method 700 uses low power detection to detect a trigger and if the trigger is detected, high power key processing is used to determine what key was pressed and process it accordingly. The type of trigger detected may vary for different keyboards. For example, Piezo elements used in Piezo switches are sensitive to mechanical movement or deflections, and even small movements or deflections of the piezo elements can generate small but detectible voltages. These voltages can provide the trigger that is detected. The key press of the Piezo switch provides the trigger which can be used as a wake up interrupt to the keyboard circuits operating in a lower power detection mode. Upon waking from the low power detection mode, the high power key processing may detect which key was pressed from, for example, a remaining charge on the Piezo element.

Alternatively highly sensitive and low power consumption detection devices such as accelerometers can be incorporated into the keypad, which can be used to detect motion related vibrations or mechanical movements related to a keypress. The motion excited accelerometers can in turn trigger the keyboard circuits, powering them up to a high power key processing mode from a lower power mode.

FIG. 8 depicts processing of a key press. Although depicted for the key press processing 606 in the low power mode, the same process may be performed for the key press processing 612 in the high power mode. The process 800 involves processing by both the SPI keyboard module 802 and the SPI keyboard interface 804 of the parking meter controller. The SPI keyboard module 802 determines an indicator associated with the key switch that was pressed (806) and then raises a notification to the SPI keyboard interface 804 of the parking meter controller (808). When the notification is raised, the SPI keyboard asserts the ATTN line in which the SPI bus is monitored to determine when it can transmit the indicator of the pressed key switch. The raised notification is detected by the SPI keyboard interface of the parking meter controller, and when the parking meter controller is ready to communicate with the SPI keyboard module 802, it enables the chip select signal line and generates the clock signal on the SPI bus (810). The SPI bus allows the simultaneous bi-directional communication, and as such, when the chip select signal is enabled, the SPI keyboard module 802 begins to clock out the determined indicator (812 a) which is clocked in (812 b) by the SPI keyboard interface 804. At the same time, if there is a command to transmit, the SPI keyboard interface 804 clocks out the command (814 a) and the SPI keyboard module 802 clocks in the command (814 b). Once the data is transferred, the chip select may be disabled, and the SPI keyboard module processes the keyboard command (816) if any that was received. Similarly, the SPI keyboard interface 804 processes the received indicator by mapping the received indicator using a key map (818) associated with the SPI keyboard module and then provides the mapped key to operating functionality of the parking meter controller (820).

The above has described an SPI keyboard module and corresponding interface that allows a parking meter to easily use different keyboard layouts without requiring additional changes to the parking meter controller. The operating functionality of the parking meter may be designed for a plurality of different parking meters, and as such may include functionality that may not be used by each parking meter. For example, one parking meter may have pay by plate functionality, while a second parking meter may simply meter an associated parking space. The operating functionality of both meters may be the same, however, the second parking meter would not use the pay by plate functionality. It is possible to enable and/or disable certain functionality based at least in part on the SPI keyboard attached to the parking meter controller.

FIG. 9 depicts a process of configuring a parking meter. The method 900 determines a version of the SPI keyboard module (902) attached to the parking meter controller and then determines a keyboard class from the keyboard version (904). Parking meter functionality, and/or components are then enabled and/or disabled based at least in part on the determined keyboard class (906).

FIG. 10 depicts parking meter components of a parking meter incorporating multiple SPI keyboard modules. The parking meter components 1000 are similar to those described above with regard to FIGS. 4 and 5 and as such only the differences will be discussed. The parking meter components 1000 include a parking meter controller 1002 however includes two SPI keyboard modules 1004 a, 1004 b. The different keyboard modules could be, for example an alphanumeric keyboard and a smaller keyboard with, for example enter and cancel keys. The use of multiple keyboards can provide greater flexibility in the design of the parking meter. Each of the SPI keyboard modules 1004 a, 1004 b are substantially the same, although the keyboard IDs may differ. Each keyboard module is connected to the parking meter controller by a common SCLK line, common MOSI line and common MISO line. However each SPI keyboard module 1004 a, 1004 b has its own ATTN signal line, ATTN1 for SPI keyboard module 1004 a and ATTN2 for SPI keyboard module 1004 b. Similarly, each keyboard module is connected to its own CS signal line, namely CS1 for SPI keyboard module 1002 a and CS2 for SPI keyboard module 1002 b. The SPI keyboard interface 1008 is augmented to detect the different notifications from ATTN lines and then assert the corresponding CS signal in order to communicate with the appropriate SPI keyboard module. The SPI keyboard interface 1008 may include a respective keyboard mapping corresponding to each of the different SPI keyboard modules 1004 a, 1004 b. The parking meter operating functionality does not require any indication that multiple different keyboards are connected and can simply receive from the SPI keyboard interface an indication of a key that was pressed, regardless of what particular keyboard module the pressed key was on.

The above has described an SPI keyboard module that provides flexibility in laying out the physical keys of the keyboard. As described further below, rather than using physical keys, a virtual keyboard may be provided in a similar manner by an SPI touch screen module.

FIG. 11 depicts an SPI touch screen module. An alternative low power SPI implementation of a virtual keyboard may be implemented using a touch screen over a display screen. Touch screen technology is quite common, and virtual keyboards can be created with a touch screen overlaid onto the display with visual “keys” placed at specific locations on the display. However in low power applications such as battery powered parking meters, having both the display and the touch screen technology always active consume a lot of power and is not practical. Some solutions to this incorporate a single “wake up” button adjacent to the screen that allows the touch screen to be turned on. While the adjacent switch or button provide an effective solution for conserving power, the additional requirement of having to press the adjacent button to power on the touch screen provides a less-than desirable user experience.

The SPI touch screen module 1100 comprises a touch sensor 1102 a overlaying a touch screen display 1102. The touch sensor 1102 may provide input to a keyboard controller 1104 a and the touch screen display 1102 b may be controlled by a display controller 1104 b. Both the keyboard controller 1104 a and display controller 1104 b may communicate with a parking meter controller (not shown) over an SPI bus interface. As depicted, the SPI bus interface may include different chip select lines, CS1 and CS2, for the keyboard controller and the display controller. Alternatively, a single CS line may be provided with the keyboard controller data being provided to the parking meter over the MISO line while the display controller receives display information, such as what to display, from the parking meter controller over the MOSI line.

In addition to touch sensor 1102 a and the touch screen display 1102 b, the SPI touch screen module may further include a low-power wake trigger 1106. The low-power wake trigger 1106 may be provided by for example as a secondary touch sensor overlaid on top of the touch sensor and the touch screen. The secondary touch sensor may only be required to provide an indication of whether a touch occurred, rather than also providing an indication of the coordinates of one or more touches. The low-power wake trigger 1106 can provide a wake signal to the parking meter controller (not shown) providing an indication that the touch screen display of the SPI touch screen module should be powered on or woken up. Additionally or alternatively, the wake signal may be provided to one or both of the keyboard controller 1104 a and display controller 1104 b.

Although depicted as an overlay on top of the touch sensor and touch screen display, the low-power wake trigger 1106 may be provided in other ways. For example a vibration sensor may be attached to the touch sensor and/or touch screen display to allow detection of vibrations caused by a user pressing or tapping on the screen. Additionally or alternatively, a piezo electric element or switch may be physically associated with the touch screen to detect an initial press on the touch screen. By incorporating an additional touch or vibration sensitive technology into the traditional touch screen solution, an initial finger press or touch anywhere on the touch screen display of the SPI touch screen module can be used as an initial wake up mechanism. Upon waking up, the touch screen display with touch sensor may become active. The combination of the touch screen with the low power wake trigger associated with the touch screen, conserves power as it allows the initial lower power touch or vibration sensor to trigger the system to wake up or provide an interrupt, which allows the higher powered virtual keyboard utilizing a touch sensor and touch screen display to become active and available to use.

FIG. 12 depicts parking meter components of a further parking meter incorporating the SPI touch screen module of FIG. 11. The SPI touch sensor module 1100 is depicted as being connected to the parking meter controller 1200 via an SPI bus interface that includes the shared Serial Clock (SCLK) line, Maser Out Slave In (MOSI) line, and Master In Slave Out (MISO) line. The SPI bus interface is depicted as further including respective chip select (CS1, CS2) lines for the keyboard controller and display controller respectively, an attention (ATTEN1) line providing an indication that a key press, or rather a touch screen press, is ready to be transmitted, and a wake (Wake) line providing an indication to the parking meter controller 1200 that the touch screen display has been touched or pressed.

The parking meter controller 1200 may comprise parking meter operating functionality 1202 as well as SPI touch screen interface functionality 1204. The SPI touch screen interface functionality 1204 is similar to the SPI keyboard interface functionality described above. While the SPI keyboard interface functionality maps a key switch that was pressed to a corresponding key using a particular key map associated with the particular SPI keyboard module, the SPI keyboard interface functionality maps a screen location that was pressed to a corresponding key using a coordinate key mapping 1206 associated with the particular screen displayed on the touch screen display 1102. The SPI touch screen interface functionality may include keyboard display functionality 1208 that may interact with the parking meter operating functionality 1202 in order to display, or more particularly cause the SPI touch sensor module to display, an appropriate virtual keyboard screen, or other appropriate or desired screen. Information about the location of displayed keys may be provided to both the keyboard display functionality 1208 and the coordinate key mapping functionality 1206 in order to map a press on the touch sensor to a particular key displayed at the pressed location. The indication of the pressed location as well as the display information may be transmitted between the SPI touch sensor module 1100 and the parking meter controller 1200 over the SPI bus interface. As described above, a wake signal may be provided to the parking meter controller from the low power wake trigger 1106 on the SPI touch sensor module. The wake signal may also be provided to the display controller 1104 b and possibly the keyboard controller 1104 a. Upon receiving the wake signal from low-power wake trigger 1106, the parking meter controller 1200 determine what should be displayed on the touch screen display 1102 b and transmit the appropriate data to the SPI touch sensor module to 1100 using the SPI bus interface functionality 1206 to cause the SPI touch sensor module to display the screen on the touch screen display.

The touch sensor 1102 a and keyboard controller 1104 a of the SPI touch sensor module 1100 may send an indication of a pressed location on the touch sensor 1102 a overlaying the touch screen display in a similar manner that the keyboard controller of the SPI keyboard module described above sends an indication of the pressed key switch to the parking meter controller. In particular, the keyboard controller may set the signal on the ATTEN1 signal line to indicate to the parking meter controller that touch data is available for transmission. When the CS1 line signal is set, the location information indicating the location of the press or touch on the screen may be transmitted over the MISO signal line.

SPI keyboards for parking meters have been described above. As described above, the SPI keyboards may include various different layouts of physical keys as well as virtual keys displayed on a touch screen. The SPI keyboards can provide low power operation which may be desirable in parking meters and in particular in single space parking meters. Further, parking meters may incorporate a plurality of individual SPI keyboards. The SPI keyboards may identify the particular key layout to the parking meter and as such SPI keyboards having different layouts can be easily swapped without having to reconfigure the programming of the parking meter.

Although certain components and steps have been described, it is contemplated that individually described components, as well as steps, may be combined together into fewer components or steps or the steps may be performed sequentially, non-sequentially or concurrently. Further, although described above as occurring in a particular order, one of ordinary skill in the art having regard to the current teachings will appreciate that the particular order of certain steps relative to other steps may be changed. Similarly, individual components or steps may be provided by a plurality of components or steps. One of ordinary skill in the art having regard to the current teachings will appreciate that the components and processes described herein may be provided by various combinations of software, firmware and/or hardware, other than the specific implementations described herein as illustrative examples.

Numerous additional variations on the methods and apparatus of the various embodiments described above will be apparent to those skilled in the art in view of the above description. Such variations are to be considered within the scope. 

1. A parking meter comprising: at least one parking meter controller executing instructions to configure the parking meter to provide: operating functionality; and a keyboard interface comprising a serial peripheral interface (SPI) bus interface; and an SPI keyboard module connected to the at least one parking meter controller by an SPI bus, the SPI keyboard module comprising: a plurality of key switches; and at least one keyboard controller configured to: detect pressing of a key switch of the plurality of key switches; determine a predetermined indicator associated with the detected key switch that was pressed; and transmit over the SPI bus the predetermined indicator associated with the pressed key to the keyboard interface of the at least one parking meter controller.
 2. The parking meter of claim 1, wherein the keyboard interface receives the predetermined indicator transmitted by the SPI keyboard module and maps the received predetermined indicator to a particular key.
 3. The parking meter of claim 2, wherein keyboard interface uses a keyboard mapping associated with the SPI keyboard module for mapping the received predetermined indicator to a particular key.
 4. The parking meter of claim 3, wherein the keyboard interface determines a keyboard identifier of the SPI keyboard module and selects the keyboard mapping based on the keyboard identifier.
 5. (canceled)
 6. (canceled)
 7. (canceled)
 8. The parking meter of claim 4, wherein the keyboard identifier is communicated to the operating functionality and the operating functionality enables or disables one or more features of the parking meter based on the keyboard identifier.
 9. (canceled)
 10. (canceled)
 11. The parking meter of claim 1, wherein the SPI bus comprises: a chip select (CS) signal line associated with the SPI keyboard module for carrying a chip select signal indicative of when the keyboard module can transmit to the at least one keyboard controller; a serial clock (SCLK) signal line for carrying a clock signal for controlling signal timing; a master in slave out (MISO) signal line for carrying serially transmitted data from the SPI keyboard module to the at least one parking meter controller; and a master-out-slave-in (MOSI) signal line for carrying serially transmitted data from the at least one parking meter controller to the SPI keyboard module.
 12. The parking meter of claim 11, wherein the keyboard controller is configured to: monitor the CS signal line in a transmission mode when data is to be transmitted to the at least one parking meter controllers.
 13. The parking meter of claim 12, further comprising an attention (ATTN) signal line connecting the SPI keyboard module to the at least one parking meter controller, and wherein the keyboard controller is configured to: switch from a sleep mode to the transmission mode when a key press is detected; and raise a signal on the ATTN signal line providing an indication to the at least one parking meter controller that there is data to transmit.
 14. The parking meter of claim 13, wherein the keyboard controller is further configured to: switch from the transmission mode to the sleep mode when there is no more data to transmit to the at least one parking meter controller.
 15. The parking meter of claim 1, wherein the keyboard controller detects pressing of the key switch by: detecting a trigger indicative of pressing of the key switch; and scanning the plurality of key switches to determine which key switch was pressed.
 16. The parking meter of claim 1, wherein the keyboard interface transmits a keyboard command comprising a command identifier to the SPI keyboard module over the SPI bus, and wherein the keyboard controller of the SPI keyboard module receives and processes the keyboard command.
 17. The parking meter of claim 16, wherein the keyboard command comprises one or more of: a mode command changing an operating mode of the SPI keyboard module; a configuration command setting a configuration parameter value of the SPI keyboard module; a query command querying configuration parameter values of the SPI keyboard module; and an action command causing the SPI keyboard module to perform an action.
 18. The parking meter of claim 1, wherein the SPI keyboard module further comprises a feedback device capable of providing feedback of key presses.
 19. (canceled)
 20. The parking meter of claim 1, wherein the SPI keyboard module further comprises a light emitting diode (LED) device for lighting at least a portion of the plurality of key switches.
 21. (canceled)
 22. (canceled)
 23. (canceled)
 24. The parking meter of claim 1, wherein the parking meter is a single space parking meter.
 25. The parking meter of claim 1, wherein the parking meter is a multi-space parking meter.
 26. The parking meter of claim 1, further comprising a second SPI keyboard module connected to the at least one parking meter by the SPI bus.
 27. An SPI keyboard module for connection to a parking meter controller in a parking meter by an SPI bus, the SPI keyboard module comprising: a plurality of key switches; and at least one keyboard controller configured to: detect pressing of a key switch of the plurality of key switches; determine a predetermined indicator associated with the detected key switch that was pressed; and transmit over the SPI bus the predetermined indicator associated with the pressed key to the keyboard interface of the parking meter controller.
 28. The SPI keyboard module of claim 27, wherein the SPI bus comprises: a chip select (CS) signal line associated with the SPI keyboard module for carrying an chip select signal indicative of when the keyboard module can transmit to the keyboard controller; a serial clock (SCLK) signal line for carrying a clock signal for controlling signal timing; a master in slave out (MISO) signal line for carrying serially transmitted data from the SPI keyboard module to the parking meter controller; and a master-out-slave-in (MOSI) signal line for carrying serially transmitted data from the parking meter controller to the SPI keyboard module.
 29. The SPI keyboard module of claim 28, wherein the keyboard controller is configured to: monitor the CS signal line in a transmission mode when data is to be transmitted to the parking meter controllers.
 30. The SPI keyboard module of claim 29, further comprising a connector to an attention (ATTN) signal line for connecting the SPI keyboard module to the at least one parking meter controller, and wherein the keyboard controller is configured to: switch from a sleep mode to the transmission mode when a key press is detected; and raise a signal on the ATTN signal line through the connector providing an indication to the at least one parking meter controller that there is data to transmit.
 31. The SPI keyboard module of claim 30, wherein the keyboard controller is further configured to: switch from the transmission mode to the sleep mode when there is no more data to transmit to the at least one parking meter controller.
 32. The SPI keyboard module of claim 27, wherein the keyboard controller detects pressing of the key switch by: detecting a trigger indicative of pressing of the key switch; and scanning the plurality of key switches to determine which key switch was pressed.
 33. The SPI keyboard module of claim 27, wherein the keyboard controller is configured to receive and process a keyboard command comprising a command identifier over the SPI bus.
 34. The SPI keyboard module of claim 33, wherein the keyboard command comprises one or more of: a mode command changing an operating mode of the SPI keyboard module; a configuration command setting a configuration parameter value of the SPI keyboard module; a query command querying configuration parameter values of the SPI keyboard module; and an action command causing the SPI keyboard module to perform an action.
 35. The SPI keyboard module of claim 27, further comprising a feedback device capable of providing feedback of key presses.
 36. (canceled)
 37. The SPI keyboard module of claim 27, wherein the SPI keyboard module further comprises an LED device for lighting at least a portion of the plurality of key switches.
 38. (canceled)
 39. (canceled)
 40. (canceled)
 41. An SPI touch screen module for connection to a parking meter controller in a parking meter by an SPI bus, the SPI touch screen module comprising: a touch screen display; a touch sensor overlaid on the touch screen; a display controller configured to: receive display information from the parking meter controller; and display at least one virtual key on the touch screen display according to the received display information; and at least one keyboard controller configured to: detect a touch at a location on the touch sensor; and transmit over the SPI bus an indication of the location on the touch sensor of the detected touch to the keyboard interface of the parking meter controller. 